Computer Programming Class এবং Object এর ব্যবহার গাইড ও নোট

321

ফোরট্রানে Class এবং Object এর ব্যবহার

ফোরট্রান 90 সংস্করণ থেকে Object-Oriented Programming (OOP) এর ধারণা যোগ করা হয়েছে, যার মধ্যে Class এবং Object একটি মৌলিক অংশ হিসেবে ব্যবহৃত হয়। Class একটি template বা blueprint হিসেবে কাজ করে, যা Object তৈরি করার জন্য ব্যবহৃত হয়। ফোরট্রানে Class এবং Object এর ব্যবহার প্রোগ্রামিংয়ের মডুলারিটি এবং রিইউসেবিলিটি বাড়ানোর জন্য গুরুত্বপূর্ণ।

ফোরট্রানে Class এবং Object তৈরি এবং ব্যবহারের জন্য type, type-bound procedures (methods), এবং instantiate এর মতো কনসেপ্টগুলো ব্যবহার করা হয়।


১. Class তৈরি করা

ফোরট্রানে Class তৈরির জন্য type কিওয়ার্ড ব্যবহার করা হয়। একটি Class ডেটা এবং ফাংশন (methods) ধারণ করতে পারে। একটি Class-এ ডেটা সদস্য (data members) এবং মেথড (methods) অন্তর্ভুক্ত থাকে।

Class তৈরি করার সাধারণ গঠন:

type :: class_name
  ! সদস্য ভ্যারিয়েবল বা ডেটা সদস্য
  integer :: member_variable
  real :: another_member

  ! মেথড বা টাইপ-বাউন্ড প্রোসিডিউর
contains
  procedure :: method_name
end type class_name
  • type: ফোরট্রানে Class বা derived type ঘোষণা করতে ব্যবহৃত হয়।
  • contains: এখানে method বা function ঘোষণা করা হয়।

Class এর উদাহরণ:

module person_module
  implicit none

  type :: Person
    character(len=30) :: name
    integer :: age
  contains
    procedure :: set_name
    procedure :: set_age
    procedure :: display
  end type Person

contains

  ! মেথড যা নাম সেট করে
  subroutine set_name(this, new_name)
    class(Person), intent(inout) :: this
    character(len=30), intent(in) :: new_name
    this%name = new_name
  end subroutine set_name

  ! মেথড যা বয়স সেট করে
  subroutine set_age(this, new_age)
    class(Person), intent(inout) :: this
    integer, intent(in) :: new_age
    this%age = new_age
  end subroutine set_age

  ! মেথড যা তথ্য প্রদর্শন করে
  subroutine display(this)
    class(Person), intent(in) :: this
    print *, 'Name: ', this%name
    print *, 'Age: ', this%age
  end subroutine display

end module person_module

এখানে:

  • Person একটি ক্লাস, যার মধ্যে name এবং age সদস্য ভ্যারিয়েবল রয়েছে।
  • set_name, set_age, এবং display মেথড বা টাইপ-বাউন্ড প্রোসিডিউর রয়েছে।

২. Object তৈরি এবং Class এর মেথড ব্যবহার করা

ফোরট্রানে Object তৈরি করার জন্য type-এর একটি ভ্যারিয়েবল তৈরি করা হয়। এই ভ্যারিয়েবলটি Class থেকে আসবে এবং method ব্যবহার করার জন্য তা কল করা হয়।

Object তৈরি এবং ব্যবহার করার উদাহরণ:

program object_example
  use person_module
  implicit none

  type(Person) :: person1  ! Object তৈরি করা
  character(len=30) :: input_name
  integer :: input_age

  ! নাম এবং বয়স ইনপুট
  print *, 'Enter name:'
  read *, input_name
  print *, 'Enter age:'
  read *, input_age

  ! Object এর মেথড ব্যবহার
  call person1%set_name(input_name)
  call person1%set_age(input_age)

  ! Object এর তথ্য প্রদর্শন করা
  call person1%display()

end program object_example

এখানে:

  • type(Person) ব্যবহার করে person1 নামে একটি Object তৈরি করা হয়েছে, যা Person ক্লাসের একটি ইনস্ট্যান্স।
  • set_name এবং set_age মেথডের মাধ্যমে person1 এর name এবং age সেট করা হয়েছে।
  • অবশেষে, display মেথড ব্যবহার করে person1 এর তথ্য প্রিন্ট করা হয়েছে।

আউটপুট:

Enter name:
John
Enter age:
30
Name: John
Age: 30

৩. Class এর মেম্বার ভ্যারিয়েবল এবং মেথড

ফোরট্রানে Class এর মধ্যে ভ্যারিয়েবল এবং ফাংশন/মেথড দুটি আলাদা করা যায়:

  • মেম্বার ভ্যারিয়েবল (Member Variables): ডেটা সদস্য যা ক্লাসের মধ্যে সংরক্ষিত থাকে। প্রতিটি Object এর নিজস্ব ডেটা থাকে।
  • মেথড (Methods): ক্লাসের মধ্যে ডিফাইন করা ফাংশন বা সাবরুটিন, যা ক্লাসের ডেটা পরিচালনা করতে সহায়ক।

৪. Encapsulation, Inheritance, and Polymorphism

ফোরট্রানে OOP ধারণা খুবই মৌলিক এবং Encapsulation (তথ্য লুকানো), Inheritance (উত্তরণ), এবং Polymorphism (একাধিক রূপ) এর মতো ক্ষমতা পুরোপুরি সমর্থিত নয়। তবে, ফোরট্রান 2003 সংস্করণ থেকে Encapsulation এবং Polymorphism এর কিছু রূপ পাওয়া যায়।

  • Encapsulation: ক্লাসের মধ্যে ডেটা এবং ফাংশনগুলিকে একত্রিত করা যাতে বাইরের কোড অ্যাক্সেস করতে না পারে।
  • Inheritance: এক ক্লাস থেকে অন্য ক্লাসের বৈশিষ্ট্য উত্তরাধিকারীভাবে গ্রহণ করা।
  • Polymorphism: একাধিক ফাংশন বা মেথড যা একই নামের সাথে কাজ করতে পারে, কিন্তু তাদের আচরণ ভিন্ন হতে পারে।

৫. Class ব্যবহার করার সুবিধা

  1. ডেটা সংগঠন: ক্লাসের মাধ্যমে সম্পর্কিত ডেটাকে একত্রিত করা যায়, যা প্রোগ্রামিং কোডকে আরও মডুলার এবং পরিষ্কার করে তোলে।
  2. কোড পুনঃব্যবহারযোগ্যতা: একবার তৈরি করা ক্লাস পুনঃব্যবহার করা যায় অন্যান্য অংশে বা অন্যান্য প্রোগ্রামে।
  3. ডেটা এবং কার্যকলাপ একত্রিত: ক্লাসে ডেটা এবং কার্যকলাপ (ফাংশন/মেথড) একত্রিত করার মাধ্যমে কোড রক্ষণাবেক্ষণ সহজ হয়।
  4. বড় প্রজেক্টে সুবিধা: বড় এবং জটিল প্রজেক্টে কোডের মডুলারিটি এবং সুসংগততা বজায় রাখে।

উপসংহার

ফোরট্রানে Class এবং Object ব্যবহারের মাধ্যমে আপনি আরও মডুলার, পরিষ্কার এবং পুনঃব্যবহারযোগ্য কোড লিখতে পারবেন। Object-Oriented Programming (OOP) ফিচারগুলি ফোরট্রানে type, type-bound procedures এবং object instances এর মাধ্যমে বাস্তবায়ন করা সম্ভব, যা প্রোগ্রামের জটিলতা কমিয়ে দেয় এবং রক্ষণাবেক্ষণ সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...